Std Part/ru

Создать деталь

Расположение в меню
None
Верстаки
Все
Быстрые клавиши
Нет
Представлено в версии
0.17
См. также
Создать группу, Создать тело

Описание

Std Part (internally called App Part) is a general purpose container that keeps together a group of objects so that they can be moved together as a unit in the 3D view.

The Std Part element was developed to be the basic building block to create mechanical assemblies. In particular, it is meant to arrange objects that have a Part TopoShape, like Part Primitives, PartDesign Bodies, and other Part Features. The Std Part provides an Origin object with local X, Y, and Z axes, and standard planes, that can be used as reference to position the contained objects. In addition, Std Parts may be nested inside other Std Parts to create a big assembly from smaller sub-assemblies.

Although it is primarily intended for solid bodies, the Std Part can be used to manage any object that has a Placement property, so it can also contain Mesh Features, sketches, and other objects derived from the App GeoFeature class.

Do not confuse the PartDesign Body with the Std Part. The first one is a specific object used in the PartDesign Workbench, intended to model a single contiguous solid by means of PartDesign Features. On the other hand, the Std Part is not used for modelling, just to arrange different objects in space, with the intention to create assemblies.

The Std Part tool is not defined by a particular workbench, but by the base system, thus it is found in the structure toolbar that is available in all workbenches. To group objects arbitrarily without considering their position, use Std Group; this object does not affect the placements of the elements that it contains, it is essentially just a folder that is used to keep the Tree view organized.

Left: elements inside a Std Part in the Tree view. Right: objects positioned in space, referred to the Origin of the Std Part.

Применение

  1. Press the Create part button.
  2. An empty Part is created and automatically becomes active.
  3. To add objects to the Part, select them in Tree view, and drag and drop them onto the Part.
  4. To remove objects from the Part, drag them out of the Part, and onto the document label at the top of the Tree view.
  5. Objects can also be added and removed by editing the ДанныеGroup property of the Part.

Примечания

Свойства

The Std Part, internally called App Part (App::Part class), is derived from the App GeoFeature (App::GeoFeature class) and inherits all its properties. It also has several additional properties. Notably properties that help it manage information in the context of an assembly, for example, ДанныеType, ДанныеId, ДанныеLicense, ДанныеLicenseURL and ДанныеGroup.

These are the properties available in the property editor. Hidden properties can be shown by using the Show all command in the context menu of the property editor.

Данные

Основные

Вид

Display Options

Selection

Подробное описание

Активное состояние

An open document can contain multiple Parts. But only one Part can be active. The active Part is displayed in the tree view with the background color specified by the Active container value in the preferences editor (by default, light blue). It will also be shown with bold text.

To activate or de-activate a Part:

Document with two Std Parts, of which the second one is active.

Начало координат

The Origin consists of the three standard axes (X, Y, Z) and three standard planes (XY, XZ and YZ). Sketches and other objects can be attached to these elements when creating them.

Left: Part Origin in the Tree view. Right: representation of the Origin elements in the 3D view.

Note: the Origin is an App Origin object (App::Origin class), while the axes and planes are objects of type App::Line and App::Plane respectively. Each of these elements can be hidden and unhidden individually with the Space bar; this is useful to choose the correct reference when creating other objects.

Note 2: all elements inside the Part are referenced to the Part's Origin which means that the Part can be moved and rotated in reference to the global coordinate system without affecting the placement of the elements inside.

Visibility Management

The Part's visibility supersedes the visibility of any object it contains. If the Part is hidden, the objects it contains will be hidden as well, even if their individual ВидVisibility property is set to true. If the Part is visible, then each object's ВидVisibility determines whether the object is shown or not.

The visibility of the Std Part determines whether the objects grouped under it are shown in the 3D view or not. Left: the Part is hidden, so none of the objects will be shown in the 3D view. Right: the Part is visible, so each object controls its own visibility.

Программирование

Общие сведения о добавлении объектов в документ смотрите в разделе Конструктивный элемент верстака Part.

A Std Part (App Part) is created with the addObject() method of the document. Once a Part exists, other objects can be added to it with the addObject() or addObjects() methods.

import FreeCAD as App

doc = App.newDocument()
part = App.ActiveDocument.addObject("App::Part", "Part")

obj1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
obj2 = App.ActiveDocument.addObject("Part::Box", "Box")

part.addObjects([obj1, obj2])
App.ActiveDocument.recompute()

You cannot create a scripted App::Part. However, you can add App::Part behavior to a scripted Part::FeaturePython object by using the following code:

class MyGroup(object):
    def __init__(self, obj=None):
        self.Object = obj
        if obj:
            self.attach(obj)

    def dumps(self):
        return

    def loads(self, _state):
        return

    def attach(self, obj):
        obj.addExtension("App::OriginGroupExtensionPython")
        obj.Origin = FreeCAD.ActiveDocument.addObject("App::Origin", "Origin")

    def onDocumentRestored(self, obj):
        self.Object = obj

class ViewProviderMyGroup(object):
    def __init__(self, vobj=None):
        if vobj:
            vobj.Proxy = self
            self.attach(vobj)
        else:
            self.ViewObject = None

    def attach(self, vobj):
        vobj.addExtension("Gui::ViewProviderOriginGroupExtensionPython")
        self.ViewObject = vobj

    def dumps(self):
        return None

    def loads(self, _state):
        return None

App.ActiveDocument.addObject("Part::FeaturePython",
                             "Group",
                             MyGroup(),
                             ViewProviderMyGroup(),
                             True)